package com.totofgeek.contactsboard.outils.utilitaires;

import java.text.Normalizer;
import java.util.regex.Pattern;

public class StringUtilitaire
{
	/**
	 * @param nombre
	 * @return
	 */
	public static Boolean StringToBoolean(String booleen) throws NumberFormatException
	{
		Boolean retour = Boolean.FALSE;
		if ("1".equalsIgnoreCase(booleen) || "true".equalsIgnoreCase(booleen) || "vrai".equalsIgnoreCase(booleen) || "oui".equalsIgnoreCase(booleen)
				|| "o".equalsIgnoreCase(booleen) || "y".equalsIgnoreCase(booleen) || "t".equalsIgnoreCase(booleen))
		{
			retour = Boolean.TRUE;
		}

		return retour;
	}

	/**
	 * @param nombre
	 * @return
	 */
	public static Long StringToLong(String nombre) throws NumberFormatException
	{
		return Long.valueOf(nombre);
	}

	/**
	 * @param nombre
	 * @return
	 */
	public static Double StringToDouble(String nombre) throws NumberFormatException
	{
		nombre = nombre.replace(',', '.');
		return Double.valueOf(nombre);
	}

	/**
	 * @param nombre
	 * @return
	 */
	public static Float StringToFloat(String nombre) throws NumberFormatException
	{
		nombre = nombre.replace(',', '.');
		return Float.valueOf(nombre);
	}

	/**
	 * @param nombre
	 * @return
	 */
	public static Integer StringToInteger(String nombre) throws NumberFormatException
	{
		nombre = nombre.replace(',', '.');
		return Integer.valueOf(nombre);
	}

	/**
	 * @param nomClasse
	 * @return
	 */
	public static String recupererNomTable(Class<?> nomClasse)
	{
		String nomClasseString = nomClasse.getName();
		int dernierPoint = nomClasseString.lastIndexOf(".");
		return nomClasseString.substring(dernierPoint + 1);
	}

	/**
	 * @param nomFichier
	 * @return
	 */
	public static String recupererNomClasse(String nomFichier)
	{
		int premierPoint = nomFichier.indexOf(".");
		return new StringBuilder("com.totofgeek.quiestlepluspres.beans.").append(premiereLettreMajuscule(nomFichier.substring(0, premierPoint))).toString();
	}

	/**
	 * @param debutMethode
	 * @param nom
	 * @return
	 */
	public static String premiereLettreMajuscule(String nom)
	{
		String nomMethode = null;
		if (nom != null && !nom.equals(""))
		{
			String premiereLettre = nom.substring(0, 1).toUpperCase();
			String resteAttribut = nom.substring(1);

			nomMethode = new StringBuilder(premiereLettre).append(resteAttribut).toString();
		}
		return nomMethode;
	}

	/**
	 * @param url
	 * @return
	 */
	public static String recupererNomFichierUrl(String url)
	{
		return url.substring(url.lastIndexOf("/") + 1);
	}

	/**
	 * @param chaine
	 * @return
	 */
	public static String sansAccent(String chaine)
	{
		String strTemp = Normalizer.normalize(chaine, Normalizer.Form.NFD);
		Pattern pattern = Pattern.compile("\\p{InCombiningDiacriticalMarks}+");
		return pattern.matcher(strTemp).replaceAll("");
	}
}
